<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  var msg = "365";
  console.log( msg );
  console.log( typeof msg );
  var res = Number(msg);
  console.log( res );
  console.log( typeof res );

  console.log("------");


  console.log( Number( "365.789" ) );
  console.log( Number( "365.789a" ) );
  console.log( Number( "hello world" ) );
  console.log( Number( true ) );
  console.log( Number( false ) );
  console.log( Number( {} ) );
  console.log( Number( {name:"admin"} ) );
  console.log( Number( [] ) );
  console.log( Number( ["365"] ) );
  console.log( Number( ["365","678"] ) );
  console.log( Number( ["hello"] ) );
  console.log( Number( [true] ) );
  console.log( Number( [35] ) );
  console.log( Number( [35,78] ) );
  console.log( Number( [undefined] ) );
  console.log( Number( [undefined, undefined] ) );
  console.log( Number( [null] ) );
  console.log( Number( [null, null] ) );
  console.log( Number( null ) );
  console.log( Number( undefined ) );
  console.log( Number( function(){} ) );

  // 规则：
  // 花括号对象，函数，undefined：NaN
  // true为1，false为0
  // 字符转数值：不允许出现非数字，只要出现非数字，就是NaN（严格转换）
  // 数组（中括号对象）：空数组为0，有且只有一个数字数据，直接转成该数值，有且只有一个undefined或null，转成0，否则NaN
  // null为0

  console.log("--------")

  console.log( parseInt( "365" ) );
  console.log( parseInt( "365.789" ) );
  console.log( parseInt( "365.789a" ) );
  console.log( parseInt( "365a.789" ) );
  console.log( parseInt( "36a5.789" ) );
  console.log( parseInt( "a365.789" ) );
  
  console.log( parseInt( 3.1415 ) );

  // 字符转数值：从左向右依次检测，能转则转，不能转就停止，第一位就不能转，直接NaN（非严格转换）
  // 不能识别小数点

  console.log("--------")

  console.log( parseFloat( "365" ) );
  console.log( parseFloat( "365.789" ) );
  console.log( parseFloat( "365.789a" ) );
  console.log( parseFloat( "365.7a89" ) );
  console.log( parseFloat( "36a5.789" ) );
  console.log( parseFloat( "a365.789" ) );

  // 字符转数值：非严格转换
  // 能识别小数点


  console.log("--------")

  console.log( Math.round( "365" ) )
  console.log( Math.round( "365.789" ) )
  console.log( Math.round( "365.789a" ) )
  
  console.log( Math.round( 365.789 ) )

  // 字符转数值：严格转换



  
  
</script>
</html>